Suicidal Blonde wrote:You've mentioned this Brain in a box a couple of times. Have you any links? Enquiring but lazy minds want to know.
I've tried to look for it in some dev posts or blogs, but can't find it. It's entirely possible that it has only been discussed at fanfest, which would make searching a lot more horrible. If you look through any of the presentations where CCP Veritas shows up from FF2013 (and possible FF2012), it should pop upGǪ but I can't remember which ones it is, unfortunately.
Basically, from what I understand (and I'm sure some dev will come in and correct a bunch of details) the problem is that setting up a character in-game is fairly processing-intensive. It means collecting all the character data, looking up what all the skills do, checking for implants, looking up what they do, looking up what your ship and all your equipment does, mixing and matching levels to skills to bonuses to attributes to implants to [etc]GǪ and from this GǣbrainGǥ create
Ze Pilot as a coherent object to be manipulated in the world. This has to happen every time a pilot enters a node and every time the state of that pilot changes: jumping into a system, undocking, joining a fleet. In large fleets, this massive workload creates issues because on the FC's command, a thousand such brains need to be initialised in rapid succession when they are hotdropped into a fight or when they jump through a gate. Likewise, with the [bleep]ton of people constantly jumping into and undocking in Jita, that's a silly amount of GÇ£brainsGÇ¥ that need to be figured out, applied, and set up as pilot-objects every second.
What brain-in-a-box is meant to do is allow the server to side-load all that work. The system node says GÇ£oh, hey, this pilot just undocked, give me his statsGÇ¥, and a separate server does all the above calculations, collects the results in a neat and easy-to-handle GÇ£box,GÇ¥ and hands it back to the node for further processing. As a best-case scenario, that ready-made brain-in-a-box can be saved between sessions, so when the character jumps from system to system to system, and nothing happens to them, that brain was done five jumps ago and can just be handed off to the next node without any need for calculations at all. The system node, in turn, then GÇ£onlyGÇ¥ has to do the work of tracking the stats of that object as it moves around, activates modules, is shot at and generally gets up to no good. But those are constant, small-scale events that are made easy to handle by TiDi, wheras the whole GÇ£omg, I have to set up a thousand pilotsGÇ¥ task is a
huge spike of one-time computation-intensive work that makes the whole system come to a standstillGǪ and TiDi just makes it stand still for longer until everything is set up in good order.
It's a different kind of load that requires a different kind of solution. It's not something that's all that well served by simply having more hardware GÇö it's a load spike, and more oomph still means spikes, but with more idling in-between. That said, what it should do is allow them to
get more out of hardware improvements: it's essentially a multi-threading of the tasks the node has historically had to handle, with one part of the cluster dealing with the pilot setups and a different part handling the on-going processing of pilot activities.